-
Notifications
You must be signed in to change notification settings - Fork 5.8k
[GSoC] Loop closure detection. #3002
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: 5.x
Are you sure you want to change the base?
Conversation
modules/rgbd/src/submap.hpp
Outdated
template<typename MatType> | ||
void Submap<MatType>::addEdgeToSubmap(const int tarSubmapID, const Affine3f& tarPose ) | ||
{ | ||
// duplicate check. | ||
auto& iter = constraints.find(tarSubmapID); | ||
|
||
// if there is NO edge of currSubmap to tarSubmap. | ||
if(iter == constraints.end()) | ||
{ | ||
// Frome pose to tarPose transformation | ||
Affine3f estimatePose = tarPose * pose.inv(); | ||
|
||
// Create new Edge. | ||
PoseConstraint& preConstrain = getConstraint(tarSubmapID); | ||
preConstrain->accumulatePose(estimatePose, 1); | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi, @savuor. When the LOOP is detected, I need to add new edges and constraints. Is this implementation right?
6f66d71
to
d14c636
Compare
modules/rgbd/src/large_kinfu.cpp
Outdated
@@ -136,6 +143,10 @@ class LargeKinfuImpl : public LargeKinfu | |||
|
|||
int frameCounter; | |||
Affine3f pose; | |||
|
|||
// Loop Closure | |||
bool useLCD; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we need useLCD
field? We can check lcd
pointer instead
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for code reviewing. it will be updated in the next version.
2cfcd44
to
a39d026
Compare
The compilation error is the use of an unimplemented function, which has been implemented at the PR 20608 for opencv/opencv. |
@zihaomu Builds still fail with both PRs. |
@alalek Hi, Thanks for your reply. From the compiled information, it seems that there is something wrong with CN CI System.: https://build.opencv.org.cn/job/precommit/job/windows10/3115/execution/node/9/log/ |
Use this link: http://pullrequest.opencv.org/#/summary/contrib |
Hi @alalek. Thank you, the code has been updated, but it still fails on CI on ARM platform. I don't know how to deal with that. https://pullrequest.opencv.org/buildbot/builders/precommit-contrib_android/builds/14815/steps/compile%20release/logs/stdio |
@zihaomu Required builds are green now. |
Merge with: opencv/opencv#20608
[GSoC] Loop closure detection.
Hi, this is a draft PR and only contains some implementation ideas.
DNN model (HF-Net) is used as a feature extractor in my project. I try to make the model support all platforms, but unfortunately, only the OpenVINO backend is currently supported. And more backend models will be supported in the future.
The
submap.cpp
was moved toopencv/opencv/modules/3d/include/opencv2/3d/detail/submap.hpp
.So I made a new PR 20608 for
opencv/opencv
.Pull Request Readiness Checklist
See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request
Patch to opencv_extra has the same branch name.